System administrators who manage the placement of computing workloads have many resource environment choices to consider. In some cases, selected workloads can be assigned to a dedicated set of computing, storage, networking, and/or other resources (e.g., “on-prem” or “on-premises” resources). Servers with particularly-configured computing resources (e.g., multi-core processors) and with a certain attached storage capacity might be implemented to run the selected workloads. On-premises resources are sometimes configured in a computing system using virtualization software to facilitate flexibility in the use of the computing resources. Such computing systems, in particular, virtualized computing and storage systems implement various types of virtualized entities (VEs) to run the workloads that use or consume the computing resources of the systems.
The VEs deployed in many virtualization systems might be virtual machines (VMs) and/or executable containers. With as many as several thousand VEs per cluster, the high storage I/O (input/output or IO) demand of the VEs has precipitated an increase in deployment of distributed storage systems to replace centralized storage configurations. Distributed storage systems coordinate certain components in the system to efficiently use a particular set of data storage resources or facilities to service the workloads. Distributed resource environments natively combine distributed computing and/or distributed storage capabilities and/or networking capabilities, and/or other distributed capabilities that can be linearly scaled by adding nodes.
Cloud-based resource environments are also available to today's system administrators. In particular, public cloud resources can be selected from a variety of cloud providers to satisfy temporary or long term workload requirements. For example, a cloud resource provider might offer a service model that provides infrastructure as a service (IaaS), which service model or infrastructure can be used by various sets of VEs when performing certain workloads. The characteristics of both the on-premises resources and the public cloud resources can change dynamically. For example, the availability, configuration, cost, and/or other characteristics of such resources can vary quickly and broadly, both within a given resource environment and across these heterogeneous environments.
Unfortunately, legacy techniques for scheduling workloads across resource environments can present limitations at least as pertaining to efficient distribution of the workloads into the environments pertaining to on-premises distributed resource environments and public cloud resource environments. Such legacy techniques fail to consider the functionally-changing and temporally-changing capabilities of different resources and/or variations between different resource environments when determining workload scheduling plans.
More specifically, legacy techniques fail to consider the environmental changes that can occur between the time a workload scheduling plan is initially considered and the time that the workload is ready for deployment. The situation often arises when, by the time a developed plan is ready for deployment, the environment has changed so sufficiently that deployment of that plan would be unnecessary or even unhelpful. Legacy techniques fail to remediate this situation. Still further, workload scheduling using legacy techniques are deficient with respect to satisfying quantitative objectives when considering ongoing variations between different resource environments.
What is needed is a technical solution to improve over legacy techniques and/or over other considered approaches. Some of the approaches described in this background section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.